updateiconcache: Avoid confusing loop construct
authorDaniel Boles <dboles.src@gmail.com>
Wed, 4 Oct 2017 21:58:48 +0000 (22:58 +0100)
committerDaniel Boles <dboles.src@gmail.com>
Wed, 4 Oct 2017 21:59:11 +0000 (22:59 +0100)
n_attach_points is the result of g_strv_length(): the index at which the
string vector ends in NULL. So by definition, when i == n_attach_points,
string[i] == NULL, and there is no need to check for the latter. The
fact that we did appears to confuse static analysers, as the dereference
and index check were inverted from what would normally be safe. We could
reverse them, but we may as well just remove the unnecessary NULL check.

https://bugzilla.gnome.org/show_bug.cgi?id=788458

gtk/updateiconcache.c

index 1bcbbe227182384cc15af7cb6dd53acbe42c6962..fe2eb8fc647cef44136a6a024292a98a7023f981 100644 (file)
@@ -283,8 +283,7 @@ load_icon_data (const char *path)
       data->n_attach_points = g_strv_length (split);
       data->attach_points = g_new (int, 2 * data->n_attach_points);
 
-      i = 0;
-      while (split[i] != NULL && i < data->n_attach_points)
+      for (i = 0; i < data->n_attach_points; ++i)
        {
          split_point = strchr (split[i], ',');
          if (split_point)
@@ -294,7 +293,6 @@ load_icon_data (const char *path)
              data->attach_points[2 * i] = atoi (split[i]);
              data->attach_points[2 * i + 1] = atoi (split_point);
            }
-         i++;
        }
 
       g_strfreev (split);